home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / cbm / 4173 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  4.6 KB

  1. Path: news.tu-chemnitz.de!fachat
  2. From: fachat@physik.tu-chemnitz.de (Andre Fachat)
  3. Newsgroups: comp.sys.cbm,comp.os.misc,alt.comp.hardware.homebuilt,comp.sys.apple2,comp.sys.apple2.programmer,comp.sys.atari.8bit
  4. Subject: Re: 6502 Multitasking OS announce
  5. Followup-To: comp.sys.cbm,comp.os.misc,alt.comp.hardware.homebuilt,comp.sys.apple2,comp.sys.apple2.programmer,comp.sys.atari.8bit
  6. Date: 18 Mar 1996 13:40:25 GMT
  7. Organization: University of Technology Chemnitz, FRG
  8. Message-ID: <4ijp49$eil@narses.hrz.tu-chemnitz.de>
  9. References: <4i94fs$stj@narses.hrz.tu-chemnitz.de>
  10. NNTP-Posting-Host: dag.physik.tu-chemnitz.de
  11. X-Newsreader: TIN [version 1.2 PL2]
  12.  
  13. Andre Fachat (fachat@physik.tu-chemnitz.de) wrote:
  14.  
  15. :                             OS/A65
  16. :                             ------
  17.  
  18. : This is the announcement of "OS/A65", a 6502 CPU operating system
  19. : I wrote some time ago and which I now put on the Web. It is
  20. : copyrighted under the GNU public license.
  21.  
  22. After I received some mail, I thought I should give some more info.
  23. Besides that I'm going to port the kernel startup and the video
  24. device to the C64 to actually show how to do some porting.
  25. It should be working within a week (I have many other things on
  26. my schedule...)
  27.  
  28. so long
  29. Andre
  30.  
  31. ----------------------
  32.  
  33. The MMU, which I used in my homemade system is non of the ususal
  34. 68xxx or something, it's a 74ls610, a 'standard' TTL chip.
  35. Because of this it has no resemblence with the C128 or C64 so
  36. called MMU. It has 16 registers with 12 bit each (only 8 are used)
  37. that expand the upper 4 address bits to 8. I.e. the contents of the 
  38. appropriate register is used as the upper 8 address bits, while the
  39. upper 4 CPU address bits are used to select the register.
  40. So the computer can - indirectly - access 1 MByte of memory.
  41.  
  42. I have no idea of how this resembles the Atari or 65816 memory management. 
  43. The idea of the MMU is to switch between different memory environments 
  44. for the different tasks. Other page sizes or even other mechanisms should be 
  45. working too after some development.
  46.  
  47. With a MMU, the computer can run the same program multiple times,
  48. without any change. Each task has its own memory. 
  49. But then, it's slow: for each timing critical task the multitasking
  50. has to be switched off by a SEI statement. 
  51. This slows the system down. Sending infrared commands for the 
  52. audio equipment needs to shut down irq handling all the time 
  53. during the send - characters may get lost on a serial line, for 
  54. example.
  55.  
  56. Without a MMU, only programs that use different memory locations
  57. can be executed. The stack is divided into several areas, thus
  58. shortening the stack for each task but allowing several tasks
  59. to coexist. This version is a bit faster, as no MMU handling has to be
  60. done, but this doesn't do much. Without MMU, in contrast to the version
  61. with MMU, an NMI routine is available, that might be able to handle 
  62. very time critical stuff. 
  63.  
  64. The memory needs depend on what you do with the system. 
  65. The kernel itself needs 4kByte of ROM to run in, not more. The total ROM
  66. size depends on which programs you put in the ROM. I have a 32kByte
  67. EPROM with kernel, fsiec, fsibm, fsdev, shell and monitor, stdlib,
  68. and many devices.
  69. With MMU you have to have 4kByte RAM for the system, and at least 4kByte
  70. for each task. Devices need 4kByte only of they don't use the 
  71. kernel page.
  72. A system without MMU can pack the used memory locations much better,
  73. so it should be running fine in 8kByte (which I haven't tested, though).
  74. 32kByte are almost always enough.
  75.  
  76.  
  77. To port the system to, e.g. the C64, you have to take the version
  78. without MMU, of course. The kernel is hardware independent, there just
  79. have to be some irq sources (handled by devices) to allow task switching
  80. when a task is interrupted (in my homebuilt computer there is a 50Hz irq
  81. line). The startup code has to be modified for the CPU registers.
  82.  
  83. Then the video device has to be modified to handle the VIC interface
  84. and the C64 keyboard, may be also allowing several consoles.
  85. The fsiec filesystem has to be modified to handle the C64 serial bus 
  86. interface. 
  87.  
  88. Then a first test version should actually be ready to go, with 
  89. fsiec, fsdev, null device, spooler device and video devices.
  90.  
  91. Hm, that sounds to simple to me that I wonder why I haven't done it
  92. before...
  93.  
  94.  
  95. I do not sell any hardware, nor do I build them for free ;-)
  96. The boards I have are completely handwired and I will never
  97. give them away.
  98.  
  99.  
  100. --
  101. fachat@physik.tu-chemnitz.de | Andre Fachat,        Phone: ++49-371-531-3551
  102. -----------------------------| Vettersstr. 72/622,  09126 Chemnitz,  Germany
  103. Distribution via the         |---------------------------------------------- 
  104. Microsoft Network prohibited!| Unix was invented prior to user-friendlyness!
  105.